package com.laoxiang.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.laoxiang.modules.system.entity.SysRole;
import com.laoxiang.modules.system.entity.dto.PageDTO;
import com.laoxiang.modules.system.entity.vo.QueryRoleVO;
import com.laoxiang.modules.system.entity.vo.UpdateRoleVO;

import java.util.List;


/**
 * 角色信息表(SysRole)表服务接口
 *
 * @author makejava
 * @since 2023-07-13 20:51:07
 */
public interface SysRoleService extends IService<SysRole> {

    /**
     * 获得角色列表
     * @param pageNum
     * @param pageSize
     * @param queryRoleVO
     * @return
     */
    PageDTO getRoleList(Integer pageNum, Integer pageSize, QueryRoleVO queryRoleVO);

    /**
     * 增加角色
     */
    int saveRole(SysRole sysRole);

    /**
     * 修改角色
     * @param sysRole
     * @return
     */
    int updateRole(SysRole sysRole);

    /**
     * 根据角色Id获得角色信息
     * @param roleId
     * @return
     */
    SysRole getSysRoleById(Long roleId);

    /**
     * 删除role信息通过id
     * @param   roleId
     * @return
     */
    int deleteRoleById(Long roleId);

    /**
     * 批量删除role信息通过id
     * @param roleIds
     * @return
     */
    void batchDeleteRole(List<Long> roleIds);

    /**
     * 更新角色状态
     * @param updateRoleVO
     */
    void updateRoleStatus(UpdateRoleVO updateRoleVO);

    /**
     * 查询所有角色信息用于修改用户信息时显示
     * @return
     */
    List<SysRole> getRoleList();
}


